﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Linq.Expressions;

namespace LTGmaster
{
	public interface IActStrategy
	{
		Expression<Func<double, double>>[] ParamWeights { get; }
		/// <summary>
		/// Suggests a turn for current position.
		/// </summary>
		/// <param name="gameState">Current game state.</param>
		/// <param name="importance">SuggestTurn will setup the importance of each slot.
		/// Usually, the number of times strategy plans to use it.</param>
		/// <param name="turn">Suggested turn.</param>
		/// <returns>Weight of suggested turn.</returns>
		double SuggestTurn(Game gameState, double[] importance, out Turn turn);
	}
}
